- breadcrumb_title "Settings"
- page_title "Settings"
- @content_class = "limit-container-width" unless fluid_layout
- expanded = Rails.env.test?

%section.settings.as-visibility-access.no-animate#js-visibility-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Visibility and access controls')
    %button.btn.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Set default and restrict visibility levels. Configure import sources and git access protocol.')
  .settings-content
    = render 'visibility_and_access'

%section.settings.as-account-limit.no-animate#js-account-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Account and limit')
    %button.btn.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Session expiration, projects limit and attachment size.')
  .settings-content
    = render 'account_and_limit'

%section.settings.as-signup.no-animate#js-signup-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Sign-up restrictions')
    %button.btn.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure the way a user creates a new account.')
  .settings-content
    = render 'signup'

%section.settings.as-signin.no-animate#js-signin-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Sign-in restrictions')
    %button.btn.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Set requirements for a user to sign-in. Enable mandatory two-factor authentication.')
  .settings-content
    = render 'signin'

%section.settings.as-terms.no-animate#js-terms-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Terms of Service and Privacy Policy')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Include a Terms of Service agreement and Privacy Policy that all users must accept.')
  .settings-content
    = render 'terms'

%section.settings.as-help-page.no-animate#js-help-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Help page')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Help page text and support page url.')
  .settings-content
    = render 'help_page'

%section.settings.as-pages.no-animate#js-pages-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Pages')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Size and domain settings for static websites')
  .settings-content
    = render 'pages'

%section.settings.as-ci-cd.no-animate#js-ci-cd-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Continuous Integration and Deployment')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Auto DevOps, runners and job artifacts')
  .settings-content
    = render 'ci_cd'

%section.settings.as-influx.no-animate#js-influx-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Metrics - Influx')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable and configure InfluxDB metrics.')
  .settings-content
    = render 'influx'

%section.settings.as-prometheus.no-animate#js-prometheus-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Metrics - Prometheus')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable and configure Prometheus metrics.')
  .settings-content
    = render 'prometheus'

%section.settings.as-performance-bar.no-animate#js-performance-bar-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Profiling - Performance bar')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable the Performance Bar for a given group.')
      = link_to icon('question-circle'), help_page_path('administration/monitoring/performance/performance_bar')
  .settings-content
    = render 'performance_bar'

%section.settings.as-background.no-animate#js-background-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Background jobs')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure Sidekiq job throttling.')
  .settings-content
    = render 'background_jobs'

%section.settings.as-spam.no-animate#js-spam-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Spam and Anti-bot Protection')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable reCAPTCHA or Akismet and set IP limits.')
  .settings-content
    = render 'spam'

%section.settings.as-abuse.no-animate#js-abuse-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Abuse reports')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Set notification email for abuse reports.')
  .settings-content
    = render 'abuse'

%section.settings.as-logging.no-animate#js-logging-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Error Reporting and Logging')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable Sentry for error reporting and logging.')
  .settings-content
    = render 'logging'

%section.qa-repository-storage-settings.settings.as-repository-storage.no-animate#js-repository-storage-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Repository storage')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure storage path and circuit breaker settings.')
  .settings-content
    = render 'repository_storage'

%section.settings.as-repository-check.no-animate#js-repository-check-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Repository maintenance')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure automatic git checks and housekeeping on repositories.')
  .settings-content
    = render 'repository_check'

- if Gitlab.config.registry.enabled
  %section.settings.as-registry.no-animate#js-registry-settings{ class: ('expanded' if expanded) }
    .settings-header
      %h4
        = _('Container Registry')
      %button.btn.btn-default.js-settings-toggle{ type: 'button' }
        = expanded ? _('Collapse') : _('Expand')
      %p
        = _('Various container registry settings.')
    .settings-content
      = render 'registry'

- if koding_enabled?
  %section.settings.as-koding.no-animate#js-koding-settings{ class: ('expanded' if expanded) }
    .settings-header
      %h4
        = _('Koding')
      %button.btn.btn-default.js-settings-toggle{ type: 'button' }
        = expanded ? _('Collapse') : _('Expand')
      %p
        = _('Online IDE integration settings.')
    .settings-content
      = render 'koding'

%section.settings.as-plantuml.no-animate#js-plantuml-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('PlantUML')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Allow rendering of PlantUML diagrams in Asciidoc documents.')
  .settings-content
    = render 'plantuml'

%section.settings.as-usage.no-animate#js-usage-settings{ class: ('expanded' if expanded) }
  .settings-header#usage-statistics
    %h4
      = _('Usage statistics')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Enable or disable version check and usage ping.')
  .settings-content
    = render 'usage'

%section.settings.as-email.no-animate#js-email-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Email')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Various email settings.')
  .settings-content
    = render 'email'

%section.settings.as-gitaly.no-animate#js-gitaly-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Gitaly')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure Gitaly timeouts.')
  .settings-content
    = render 'gitaly'

%section.settings.as-terminal.no-animate#js-terminal-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Web terminal')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Set max session time for web terminal.')
  .settings-content
    = render 'terminal'

%section.settings.as-realtime.no-animate#js-realtime-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Real-time features')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Change this value to influence how frequently the GitLab UI polls for updates.')
  .settings-content
    = render 'realtime'

%section.settings.as-performance.no-animate#js-performance-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Performance optimization')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Various settings that affect GitLab performance.')
  .settings-content
    = render 'performance'

%section.settings.as-ip-limits.no-animate#js-ip-limits-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('User and IP Rate Limits')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Configure limits for web and API requests.')
  .settings-content
    = render 'ip_limits'

%section.settings.as-outbound.no-animate#js-outbound-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Outbound requests')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Allow requests to the local network from hooks and services.')
  .settings-content
    = render 'outbound'

%section.settings.as-mirror.no-animate#js-mirror-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Repository mirror')
    %button.btn.js-settings-toggle{ type: 'button' }
      = expanded ? 'Collapse' : 'Expand'
    %p
      = _('Configure push mirrors.')
  .settings-content
    = render partial: 'repository_mirrors_form'

= render_if_exists 'admin/application_settings/geo', expanded: expanded

= render_if_exists 'admin/application_settings/external_authorization_service_form', expanded: expanded

= render_if_exists 'admin/application_settings/elasticsearch_form', expanded: expanded

= render_if_exists 'admin/application_settings/slack', expanded: expanded

= render_if_exists 'admin/application_settings/templates', expanded: expanded

%section.settings.as-third-party-offers.no-animate#js-third-party-offers-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Third party offers')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Control the display of third party offers.')
  .settings-content
    = render 'third_party_offers', application_setting: @application_setting

= render_if_exists 'admin/application_settings/custom_templates_form', expanded: expanded

%section.settings.no-animate#js-web-ide-settings{ class: ('expanded' if expanded) }
  .settings-header
    %h4
      = _('Web IDE')
    %button.btn.btn-default.js-settings-toggle{ type: 'button' }
      = expanded ? _('Collapse') : _('Expand')
    %p
      = _('Manage Web IDE features')
  .settings-content
    = form_for @application_setting, url: admin_application_settings_path(anchor: "#js-web-ide-settings"), html: { class: 'fieldset-form' } do |f|
      = form_errors(@application_setting)

      %fieldset
        .form-group
          .form-check
            = f.check_box :web_ide_clientside_preview_enabled, class: 'form-check-input'
            = f.label :web_ide_clientside_preview_enabled, class: 'form-check-label' do
              = s_('IDE|Client side evaluation')
            %span.form-text.text-muted
              = s_('IDE|Allow live previews of JavaScript projects in the Web IDE using CodeSandbox client side evaluation.')

      = f.submit _('Save changes'), class: "btn btn-success"

= render_if_exists 'admin/application_settings/pseudonymizer_settings', expanded: expanded
